/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.


See LICENSE and AUTHORS for more information.
*/

#ifndef STATUS_H
#define STATUS_H

#include <QString>

class Status {

public:
    enum Type {
        Error = 0,
        Available,
        Unavailable,
        Subscribe,
        Subscribed,
        Unsubscribe,
        Unsubscribed,
        Probe
    };

    enum Code {
        Offline = 0,
        Online,
        Away,
        XA,
        DND,
        Chat,
        Invisible
    };

    Status(QString text);
    Status(QString text, int priority);
    Status(QString text, int priority, Status::Code code);
    Status(QString text, int priority, Status::Code code, Status::Type type);

    QString text();
    int priority();
    Status::Type type();
    Status::Code code();

    void setText(QString text);
    void setPriority(int priority);
    void setType(Status::Type type);
    void setCode(Status::Code code);

private:
    QString m_text;
    int m_priority;
    Status::Type m_type;
    Status::Code m_code;
};

#endif // STATUS_H
